package jm.nj.demo06main.demo03;

import jm.nj.demo03mian.demo05.C;

import java.util.Calendar;
import java.util.Date;
import java.util.concurrent.CancellationException;

/*
* java.util.Calendar类:日历类,替换掉了Date类中的成员变量和成员方法
* Calendar类是一个抽象类,无法直接创建对象
* 获取对象的方法,通过一个成员方法获取
* static Calendar getInstance() 使用默认时区和语言环境获得一个日历
* getInstanceof方法返回的Calendar类的子对象,所以可以使用Calendar接收(多态)
*
* */
public class Demo01Calendar {
    public static void main(String[] args) {
       /* Calendar c = Calendar.getInstance();
        System.out.println(c);*/

        //method_1();
        //method_2();
        //method_3();
        method_4();


    }
/*
* * 可以指定一个日历类中的字段,进行整数的偏移
 * add(int filed, int value)
 *
 * value值:
 * 	正数:增加指定的值
 * 	负数:减少指定的值
* */
    private static void method_4() {
        Calendar c = Calendar.getInstance();

        ymd(c);
        c.add(Calendar.YEAR,-2);
        c.add(Calendar.MONTH,13);
        c.add(Calendar.DATE,13);

        ymd(c);
    }

    /*
* Canlender 类中的getTime方法
* 把日历对象,转换成Date日期对象
*
* void setTime(Date date)把日历转换为日历
* */
    private static void method_3() {
        Calendar c = Calendar.getInstance();
        Date date = c.getTime();
        System.out.println(date);

        c.setTime(new Date());
        ymd(c);

    }

    /*
* Calender类set方法,设置日历字段值
* set(int filed,int value) filed设置那个日历字段        value:设置具体值
* set(int year,int month,int day)  同时设置
* */
    private static void method_2() {
        Calendar c = Calendar.getInstance();

        c.set(Calendar.YEAR,8888);
        c.set(Calendar.MONTH,9);
        c.set(Calendar.DATE,8);

        //同时
       c.set(1999,9,9);

        ymd(c);
    }

    /*
* Calendar类中的get方法,获取日历字段的值
* int get(int field)
* 参数是 int:是获取的哪个日历字段
 * 返回值:就表示日历字段具体数值
* */
    private static void method_1() {
        Calendar c = Calendar.getInstance();


        ymd(c);

    }

    private static void ymd(Calendar c) {
        int year = c.get(Calendar.YEAR);
        System.out.println(year);
        int month = c.get(Calendar.MONTH);
        System.out.println(month);
        int day = c.get(Calendar.DAY_OF_MONTH);
        System.out.println(day);
       /* day = c.get(Calendar.DATE);
        System.out.println(day);*/
    }
}
